#ifndef F_TestSSISensorUniE_h
#define F_TestSSISensorUniE_h


//******************************************************************************
// EDROOM Service Library

#define _EDROOM_IS_DEBUG_

#define _EDROOM_IS_EMBEDDED_

#include <public/edroomsl.h>

// Data Classes

#include <public/cdframe.h>

//******************************************************************************
// Required Components

#include <public/ssi_link_layer.h>
#include <public/stdio.h>


//******************************************************************************
// Component Class   TestSSISensorUni

class TestSSISensorUni: public CEDROOMComponent {

public:

	//*********************** Component Signal Enum Type ***********************

	 enum EDROOMTestSSISensorUniSignal { EDROOMSignalTimeout, EDROOMSignalDestroy, SToListening, SToStandBy, SNextSensorSsiDataFrame, SDataFrame };

	//***************************** Component Memory ***************************

	class CEDROOMMemory: public CEDROOMComponentMemory{

		private:

			//CQueueHead

			CEDROOMQueue::CQueueHead QueueHeads[EDROOMprioMINIMUM+1];

			public:



			// SetMemory
			void SetMemory(TEDROOMUInt32 numMessages_, CEDROOMMessage * MessagesMem_, bool_t * MessagesMemMarks_, CEDROOMQueue::CQueueNode * QueueNodesMem_, bool_t * QueueNodesMemMarks_);

	};


	//*****************************	Component Ports ****************************

	CEDROOMInterface	SsiCtrl;
	CEDROOMInterface	StoreAndNextFrame;




	// ******************************** Constructor ****************************

	TestSSISensorUni(const char * const roomname, TEDROOMComponentID id, TEDROOMUInt32 roomNumMaxMens, TEDROOMPriority roomtaskPrio, TEDROOMStackSizeType roomStack, CEDROOMMemory * pActorMemory );




	// *************************************************************************

	// **************************** Public Methods	****************************

	// *************************************************************************



	// **************************** Configuration ******************************

	 int EDROOMConfig();


	// ************************************* Start *****************************

	 int EDROOMStart();




	#ifdef _EDROOM_SYSTEM_CLOSE

	// ***************************** IsComponentFinished ***********************

	bool_t EDROOMIsComponentFinished();


	#endif

	// *************************************************************************

	// **************************** Protected Methods	************************

	// *************************************************************************

protected:



	// *********************************** Behaviour ***************************

	virtual void EDROOMBehaviour();




public:

	// *****************************	Behaviour File *************************

	#include <testssisensoruni/TestSSISensorUniC.h>


protected:

	// ********************************  Top State  ****************************

	EDROOMTopState edroomTopState;



};
#endif
